package fiuba.algo3.vista;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import fiuba.algo3.juego.JuegoGPS;

public class VentanaMenuDelJuego extends JFrame implements ActionListener {

	private static final long serialVersionUID = 1L;
	private JFrame frameTemp;
	private JuegoGPS miJuego;
	private JButton botonNuevaPartida;
	private JButton botonCargarPartida;
	private JButton botonAyuda;
	private JButton botonSalir;
	private JButton botonAcerca;
	private JButton botonCambiarUsuario;
	private JLabel imagenJuego;
	private JLabel imagenTitulo;
	private JLabel usuarioActual;
	private JButton botonPuntajesMaximos;

	public VentanaMenuDelJuego(JuegoGPS unJuego, JFrame unFrame) {

		this.miJuego = unJuego;

		// armado de la ventana
		frameTemp = unFrame; // creamos el marco
		frameTemp.setBackground(Color.WHITE);
		frameTemp.setResizable(false);

		frameTemp.setBounds(0, 0, 900, 600);
		JPanel contentPane = new JPanel();
		frameTemp.setContentPane(contentPane);
		contentPane.setLayout(null);

		botonNuevaPartida = new JButton("Nueva Partida"); // boton para jugar

		contentPane.add(botonNuevaPartida);
		botonNuevaPartida.setBounds(320, 300, 130, 50);
		
		botonCargarPartida = new JButton("Cargar Partida");
		contentPane.add(botonCargarPartida);
		botonCargarPartida.setBounds(460,300,130,50);

		botonAyuda = new JButton("Reglas del juego");
		botonAyuda.setBounds(350, 400, 200, 50);
		contentPane.add(botonAyuda);

		botonPuntajesMaximos = new JButton("Ver puntajes maximos");
		botonPuntajesMaximos.setBounds(600, 400, 200, 50);
		contentPane.add(botonPuntajesMaximos);

		botonSalir = new JButton("Salir");
		botonSalir.setBounds(800, 500, 75, 50);
		contentPane.add(botonSalir);

		ImageIcon imagenFoto = new ImageIcon("imagenes/imagenPortada.jpg");

		imagenJuego = new JLabel(imagenFoto);
		imagenJuego.setSize(300, 200);
		imagenJuego.setVisible(true);
		imagenJuego.setLocation(300, 100);
		contentPane.add(imagenJuego);

		ImageIcon imagenTit = new ImageIcon("imagenes/imagenTitulo.jpg");
		imagenTitulo = new JLabel(imagenTit);
		imagenTitulo.setSize(350, 50);
		imagenTitulo.setLocation(275, 25);
		contentPane.add(imagenTitulo);

		botonAcerca = new JButton("Acerca de nosotros");
		botonAcerca.setBounds(350, 500, 200, 50);
		contentPane.add(botonAcerca);

		usuarioActual = new JLabel("Usuario actual: "
				+ miJuego.getUsuarioActual());
		usuarioActual.setBounds(25, 450, 200, 30);
		contentPane.add(usuarioActual);

		botonCambiarUsuario = new JButton("Cambiar de Usuario");
		botonCambiarUsuario.setBounds(25, 500, 150, 50);
		contentPane.add(botonCambiarUsuario);

		botonAyuda.addActionListener(this);
		botonNuevaPartida.addActionListener(this);
		botonCargarPartida.addActionListener(this);
		botonSalir.addActionListener(this);
		botonAcerca.addActionListener(this);
		botonCambiarUsuario.addActionListener(this);
		botonPuntajesMaximos.addActionListener(this);

		frameTemp.paintComponents(frameTemp.getGraphics());
		frameTemp.setDefaultCloseOperation(EXIT_ON_CLOSE);
	}

	public void actionPerformed(ActionEvent e) {

		if (e.getSource() == botonNuevaPartida) {
			new VentanaEleccionDificultad(miJuego, frameTemp);
			System.out.println("Jugando");
		}

		else if (e.getSource() == botonCargarPartida){
			new VentanaEleccionPartidasGuardadas(miJuego, frameTemp);
		}

		else if (e.getSource() == botonAyuda) {
			new VentanaReglasDelJuego();
			System.out.println("Reglas del juego");
		}

		else if (e.getSource() == botonSalir) {
			System.out.println("Salir");
			System.exit(0);
		}

		else if (e.getSource() == botonAcerca) {
			System.out.println("acerca..");
			new VentanaAcerca();
		}

		else if (e.getSource() == botonCambiarUsuario) {
			new VentanaDeUsuarios(miJuego, frameTemp);
		} 
		
		else if (e.getSource() == botonPuntajesMaximos) {
			new VentanaPuntajesMaximos(miJuego, frameTemp);
		}
	}

}
